<?php

namespace app\index\controller;
// 空间命名和文件夹一致

// 类名也需要和文件夹名一致
// 目的：实现自动加载

//使用其他类时 需要先用use将类引入    相当于python import包
use app\BaseController;
use think\facade\View;      // 引入原生渲染视图类

class Lzc extends BaseController
{   // 一般的控制器类 都会先继承基础控制器类
    // 方法名遵循小驼峰规则
    public function myName()
    {
        // 调用父类（基础控制器类）的属性   类似python self.属性
        echo $this->name;

        // 控制器输出
        // 1.直接输出字符串
//        return '要输出的东西';
        // 2.输出json结构
        $arr = ['id' => 1, 'name' => '李白'];
//        return json($arr);
        // 3.渲染模板


        // 调试代码3种方式
        $name = '123';
        // 1.使用dump调试，能输出所有类型数据，不会停止程序
//        dump($name);
//        dump($arr);

        // 2.halt 能输出所有类型数据，但是会停止程序
//        halt($name);
//        dump($name);  // 因程序停止不会被输出

        // 3.trace 调试器中输出
        //       需要开启调试模式（看官方文档，把.examples.env改名为.env）
//        dump($aaaa);  // 会显示报错信息

    }

    public function rander_test()
    {
        // 渲染模板
        // 多应用 在应用文件夹中创建view文件夹
        // 在view文件夹中创建控制器对应文件夹（命名：小写+下划线方式）

        // 编译文件位置： runtime/应用文件夹/temp

        // 1.助手函数 view(模板文件名)
        //      如果html文件名与函数名一样，则无需注明模板文件名
        return view();

        // 2.使用View类中的fetch方法渲染
        //      要使用use导入View类才能使用
//        return View::fetch();

        /*
         * 使用其他类时  可以先引入再使用   也可以直接使用
         * */
//        return \think\facade\View::fetch();  // 直接使用就是在前面加上路径
    }

    public function rander_data_test()
    {

        // 模板赋值: 将数据从控制器中分配到视图中
        // 使用View类中的assign方法 一定要fetch之前

        // 1.模板变量赋值
        View::assign('items', "<h1>视图</h1>");

        // 2.数组按键赋值
        // 写法1
        $arr = array('name'=>'王大锤', 'gender'=>'男');
        View::assign('arr',$arr);
        // 写法2
        View::assign(['name'=>'王大锤', 'gender'=>'男']);

        // 三目运算符使用
        View::assign('bool', 1);


        return View::fetch();
    }

    public function rander_foreach()
    {
        // foreach标签 用法和php接近，用于循环输出数组或者对象的属性
        $arr = array(
            array('id'=>'1','name'=>'李白', 'gender'=>'男'),
            array('id'=>'2','name'=>'杜甫', 'gender'=>'男'),
            array('id'=>'3', 'name'=>'张三', 'gender'=>'女'),
            array('id'=>'4', 'name'=>'李四', 'gender'=>'女'),
            array('id'=>'5', 'name'=>'王五', 'gender'=>'女'),
            array('id'=>'6', 'name'=>'老六', 'gender'=>'女'),
        );
        dump($arr);
        View::assign('arr',$arr);

        $arr2 = array(
                'NBA'=>array('科比', '姚明', '库里'),
                'CBA'=>array('郭艾伦', '赵继伟', '易建联')
        );
        dump($arr2);
        View::assign('arr2',$arr2);
        View::assign('num', 10);
        View::assign('point', 70);
        View::assign('player', '魔法师');
        View::assign('id', 2);

        return View::fetch();
    }

    public function layout_template()
    {
        return View::fetch();
    }
}
